/**
 * await
 *  ● await 关键字只能在 async 修饰的方法中使用
 *  ● await 用于获取 Promise 的执行结果
 *  ● 被 async 修饰的函数是异步函数，但只有 await 之后的代码会异步执行
 */
async function fn() {
  console.log(1)
  const promise = new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('Hello world!')
    }, 1000)
  })
  const res = await promise
  console.log(res)
  console.log(2)
}

fn()

console.log(3)

// 打印顺序 1 3 2
